// miniprogram/pages/mysql/select/select.js

Page({
  /**
   * 向列表中添加新的新闻
   */
  appendList: function (data) {
    this.setData({
      listData: this.data.listData.concat(data)
    })
  },

  /**
   * 从云端 MySQL 获取新闻
   */
  getNews: function (category) {
    let scope = this
    wx.cloud.callFunction({
      name: 'mysql_select',
      data: { // 传参
        category: category
      }
    }).then(res => {
      console.log('getNews -- 从云端 MySQL 获取新闻')
      console.log(res)
      var keys = Object.keys(res.result);
      console.log('获取到的新闻条数 = ' + keys.length)
      for (var i = 0; i < ((100 < keys.length) ? 100 : keys.length)/*keys.length*/; i++) {
        scope.appendList({
          title: res.result[keys[i]]['title'],
          formatted_release_time: res.result[keys[i]]['formatted_release_time'],
          source: res.result[keys[i]]['source']
        })
      }
      console.log('展示出的新闻条数 = min { 100 , 获取到的新闻条数 } = ' + this.data.listData.length)
    })
  },

  /**
   * 页面的初始数据
   */
  data: {
    category: '',
    listData: [],
    hasPullDownRefresh: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      category: options.category
    })
    console.log('onLoad -- category is:' + this.data.category)
    var titleStr = (this.data.category == '首页') ? '热点要闻' : this.data.category
    wx.setNavigationBarTitle({
      title: titleStr,
    })
    this.getNews(this.data.category)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    if (this.data.hasPullDownRefresh) {
      return
    }
    this.setData({
      hasPullDownRefresh: true
    })
    wx.showLoading({  // 显示 loading 提示框
      title: '加载中',
    })
    console.log('onPullDownRefresh -- category is:' + this.data.category)
    this.data.listData.length = 0
    this.setData({
      listData: this.data.listData  // 清空 listData
    })
    this.getNews(this.data.category)
    wx.hideLoading()  // 关闭提示框
    wx.stopPullDownRefresh()  // 停止当前页面下拉刷新
    this.setData({
      hasPullDownRefresh: false
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})